home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / bob_shadebobs / shade_bobs.s < prev    next >
Text File  |  1980-01-03  |  14KB  |  645 lines

  1.     Section    Demo,Code_C
  2.  
  3. ;    Opt    C-,O+,w-
  4. ;    opt    d+
  5.  
  6. size1    = 80
  7. size2    = 130
  8. size3    = 70
  9.  
  10. speed1    = 6
  11. speed2    = 8
  12. speed3    = 10
  13. speed4    = 12
  14.  
  15. aa    bsr    Start
  16. bb    rts
  17.  
  18. Start:    bsr    rndinit
  19.  
  20.     lea    $dff000,a5        ; hardware base address
  21.  
  22.     Move.w    $1c(a5),OldInt    ; Save Old Interupts
  23.     Move.w    $02(a5),OldDma    ; Save Old DMA
  24.  
  25.     Move.w    #$7fff,$9a(a5)    ; Clear DMA
  26.     Move.w    #$7fff,$96(a5)    ; Clear Interupts
  27.     Move.w    #$7fff,$9c(a5)    ; Clear Interupt Requests
  28.     
  29.     Move.b    #$7f,$bfed01    ; kill timers (rem me for disk)
  30.     Move.l    $6c.w,OldV3        ; save level 3 int
  31.  
  32.     Move.l    #my_level3,$6c.w    ; put new copper interupt
  33.     Move.l    #my_copper,$80(a5)     ; Address of copper 1
  34.     Move.w    #$c010,$9a(a5)    ; Start interupts
  35.  
  36.     Move.w    #$83ef,$96(a5)    ; Start DMA ( 83ff for disk dma)
  37.     Move.w    #1,$88(a5)        ; Strobe for copper start
  38.  
  39.     move.l    #screena,d0
  40.     move.w    d0,sb_plane0_lo
  41.     swap    d0
  42.     move.w    d0,sb_plane0_hi
  43.     swap    d0
  44.     
  45.     move.l    #screenb,d0
  46.     move.w    d0,sb_plane1_lo
  47.     swap    d0
  48.     move.w    d0,sb_plane1_hi
  49.     swap    d0
  50.     
  51.     move.l    #screenc,d0
  52.     move.w    d0,sb_plane2_lo
  53.     swap    d0
  54.     move.w    d0,sb_plane2_hi
  55.     swap    d0
  56.     
  57.     move.l    #screend,d0
  58.     move.w    d0,sb_plane3_lo
  59.     swap    d0
  60.     move.w    d0,sb_plane3_hi
  61.     swap    d0
  62.     
  63.     move.l    #screene,d0
  64.     move.w    d0,sb_plane4_lo
  65.     swap    d0
  66.     move.w    d0,sb_plane4_hi
  67.     swap    d0
  68.  
  69. wait:    bsr    sb_setup
  70.     btst    #6,$bfe001
  71.     bne.s    wait        ; wait for lmb
  72.  
  73.     lea    $dff000,a5        ; hardware base address
  74.     move.l    #0,$80(a5)        ; blank copper list
  75.     move.l    #0,$84(a5)        ; if gfx lib not open (slayer boot)
  76.     move.w    #0,$180(a5)        ; bgc to black
  77.     
  78.     Move.l    OldV3,$6c.w        ; restore old l3
  79.     
  80.     Lea    GfxLib,a1        ; Pointer to Library Text
  81.     move.l    4.w,a6
  82.     jsr    -132(a6)        ; forbid
  83.     Move.l    4.w,a6        ; Exec
  84.     Moveq.l    #0,d0        ; Clear D0
  85.     Jsr    -$228(a6)        ; Open Library
  86.     cmp.l    #0,d0
  87.     beq    no_gfx_lib        ; if gfx lib not open dont restore copper lib (slayer boot)
  88.     
  89.     Move.l    d0,a1            
  90.     Move.l    $26(a1),$80(a5)    ; restore copper 1
  91.     Move.l    $32(a1),$84(a5)    ; restore copper 2
  92. no_gfx_lib:
  93.  
  94.     Move.w    OldInt,d0        ; start old interupts
  95.     Or.w    #$8000,d0
  96.     Move.w    d0,$9a(a5)
  97.     Move.w    OldDma,d0        ; start old DMA
  98.     Or.w    #$8000,d0
  99.     Move.w    d0,$96(a5)
  100.     Move.b    #$9b,$bfed01    ; Start Timers
  101.     Move.l    4.w,a6        ; Close Gfx lib
  102.     Jsr    -$19e(a6)
  103.     move.l    4.w,a6
  104.     jsr    -138(a6)        ; permit
  105.  
  106.     move.w    #0,$bfec00        ; clear kbd
  107.  
  108.     Moveq.l    #0,d0        ; No errors
  109.     Rts            ; Exit
  110.  
  111.  
  112. my_level3:    Movem.l    d0-d7/a0-a6,-(a7)    ; New copper
  113.     Move.w    #$10,$dff09c    ; Serviced Interupt
  114.  
  115.     btst    #10,$dff016
  116.     bne    exit
  117.  
  118.     lea    shade_map,a0
  119.     move.w    2(a0),d7
  120.     move.w    #31,d0
  121. .cycle    move.w    6(a0),2(a0)
  122.     add.l    #4,a0
  123.     dbf    d0,.cycle
  124.     move.w    d7,-2(a0)
  125.  
  126. Exit:    Movem.l    (a7)+,d0-d7/a0-a6
  127.     Rte            ; Return from Interupt
  128.  
  129.     *************************************************
  130.  
  131.     include    "src:shadebobs/rnd.i"
  132.  
  133.     *************************************************
  134.  
  135. sb_setup:    move.w    #2,x1step
  136.     move.w    #2,y1step
  137.  
  138.     move.w    #speed1,d0
  139.     bsr    rnd
  140.     asl.w    #1,d1
  141.     move.w    d1,x2step
  142.     move.w    #speed2,d0
  143.     bsr    rnd
  144.     asl.w    #1,d1
  145.     move.w    d1,y2step
  146.  
  147.     move.w    #speed3,d0
  148.     bsr    rnd
  149.     asl.w    #1,d1
  150.     move.w    d1,x3step
  151.     move.w    #speed4,d0
  152.     bsr    rnd
  153.     asl.w    #1,d1
  154.     move.w    d1,y3step
  155.  
  156.     bsr    sb_cls
  157.     
  158.     move.w    #9,d0
  159.     bsr    rnd
  160.     asl.w    #6,d1
  161.     lea    shade_colours,a0
  162.     ext.l    d1
  163.     add.l    d1,a0
  164.     lea    shade_map-4,a1
  165.     move.w    #31,d0
  166. .col    move.w    (a0)+,2(a1)
  167.     add.l    #4,a1
  168.     dbf    d0,.col
  169.  
  170. .loop    Move.l    $dff004,d2
  171.     And.l    #$0001ff00,d2    
  172.     Cmp.l    #$00001000,d2
  173.     Bne.s    .loop
  174.  
  175. .sinok    bsr    sb_do
  176.  
  177.     btst    #6,$bfe001
  178.     beq    .exit
  179.  
  180.     cmp.w    #512,lcount
  181.     blt    .loop
  182.  
  183.     add.l    #4,brush_ptr
  184.     move.l    brush_ptr,a0
  185.     cmp.l    #-1,(a0)
  186.     bne    .exit
  187.     move.l    #brushlist,brush_ptr
  188.     
  189. .exit    rts
  190.  
  191.     *************************************************
  192.     
  193. sb_cls:    Move.l    #screena,a0
  194.  
  195. .wait1    Btst    #14,$dff002
  196.     Bne    .wait1
  197.     
  198.     Move.l    #$1f00000,$dff040
  199.     Move.l    a0,$dff054
  200.     move.l    #0,$dff074
  201.     move.l    #0,$dff066
  202.     Move    #256*64+20,$dff058
  203.     
  204.     Move.l    #screenb,a0
  205.  
  206. .wait2    Btst    #14,$dff002
  207.     Bne    .wait2
  208.     
  209.     Move.l    #$1f00000,$dff040
  210.     Move.l    a0,$dff054
  211.     move.l    #0,$dff074
  212.     move.l    #0,$dff066
  213.     Move    #256*64+20,$dff058
  214.  
  215.     Move.l    #screenc,a0
  216.  
  217. .wait3    Btst    #14,$dff002
  218.     Bne    .wait3
  219.     
  220.     Move.l    #$1f00000,$dff040
  221.     Move.l    a0,$dff054
  222.     move.l    #0,$dff074
  223.     move.l    #0,$dff066
  224.     Move    #256*64+20,$dff058
  225.  
  226.     Move.l    #screend,a0
  227.  
  228. .wait4    Btst    #14,$dff002
  229.     Bne    .wait4
  230.     
  231.     Move.l    #$1f00000,$dff040
  232.     Move.l    a0,$dff054
  233.     move.l    #0,$dff074
  234.     move.l    #0,$dff066
  235.     Move    #256*64+20,$dff058
  236.  
  237.     Move.l    #screene,a0
  238.  
  239. .wait5    Btst    #14,$dff002
  240.     Bne    .wait5
  241.     
  242.     Move.l    #$1f00000,$dff040
  243.     Move.l    a0,$dff054
  244.     move.l    #0,$dff074
  245.     move.l    #0,$dff066
  246.     Move    #256*64+20,$dff058
  247.     
  248.     move.w    #0,lcount
  249.     
  250.     rts
  251.     
  252.     ***********************************************************
  253.         
  254. sb_do:    add.w    #1,lcount
  255.  
  256.     Lea    $dff000,a5
  257.  
  258. .wait    Btst    #14,$dff002
  259.     Bne    .wait
  260.  
  261.     lea    sintable,a3
  262.     lea    128(a3),a4
  263.  
  264.     move.w    sinepos,d4
  265.     move.w    cosinepos,d5
  266.  
  267.     move.w    (a3,d4.w),d0
  268.     move.w    (a4,d5.w),d1
  269.     muls    #size1,d0
  270.     muls    #size1,d1
  271.     swap    d0
  272.     swap    d1
  273.  
  274.     move.w    sinepos2,d4
  275.     move.w    cosinepos2,d5
  276.  
  277.     move.w    (a3,d4.w),d2
  278.     move.w    (a4,d5.w),d3
  279.     muls    #size2,d2
  280.     muls    #size3,d3
  281.     swap    d2
  282.     swap    d3
  283.     add.w    d2,d0
  284.     add.w    d3,d1
  285.  
  286.     move.w    sinepos3,d4
  287.     move.w    cosinepos3,d5
  288.  
  289.     move.w    (a3,d4.w),d2
  290.     move.w    (a4,d5.w),d3
  291.     muls    #size2,d2
  292.     muls    #size3,d3
  293.     swap    d2
  294.     swap    d3
  295.     add.w    d2,d0
  296.     add.w    d3,d1
  297.  
  298.     movem.l    d0-d1,-(a7)
  299.     add.w    #160-16,d0
  300.     add.w    #128-16,d1
  301.     bsr    plot_bob
  302.     movem.l    (a7)+,d0-d1
  303.  
  304.     movem.l    d0-d1,-(a7)
  305.     not.w    d1
  306.     add.w    #160-16,d0
  307.     add.w    #128-16,d1
  308.     bsr    plot_bob
  309.     movem.l    (a7)+,d0-d1
  310.     
  311.     move.w    x2step,d1
  312.     add.w    d1,sinepos2
  313.     and.w    #$3fe,sinepos2
  314.     move.w    y2step,d1
  315.     add.w    d1,cosinepos2
  316.     and.w    #$3fe,cosinepos2
  317.     
  318.     move.w    x3step,d1
  319.     add.w    d1,sinepos3
  320.     and.w    #$3fe,sinepos3
  321.     move.w    y3step,d1
  322.     add.w    d1,cosinepos3
  323.     and.w    #$3fe,cosinepos3
  324.     
  325.     rts
  326.  
  327.     *************************************************
  328.  
  329. plot_bob:    movem.l    d0-d7/a0-a6,-(a7)
  330.  
  331.     lea    screena,a0
  332.     lea    screenb,a1
  333.     lea    screenc,a2
  334.     lea    screend,a3
  335.     lea    screene,a4
  336.  
  337.     move.l    brush_ptr,a6
  338.     move.l    (a6),a6
  339.  
  340.     move.w    d0,d5
  341.     and.w    #15,d5
  342.     lsr.w    #3,d0
  343.     ext.l    d0
  344.     add.l    d0,a0
  345.     add.l    d0,a1
  346.     add.l    d0,a2
  347.     add.l    d0,a3
  348.     add.l    d0,a4
  349.     
  350.     mulu    #40,d1
  351.     ext.l    d1
  352.     add.l    d1,a0
  353.     add.l    d1,a1
  354.     add.l    d1,a2
  355.     add.l    d1,a3
  356.     add.l    d1,a4
  357.     
  358.     mulu    #$1000,d5
  359.     or.w    #$b5a,d5
  360.  
  361. .wait    Btst    #14,$dff002
  362.     Bne    .wait
  363.  
  364.     ; plane 1
  365.  
  366.     Move.l    a0,$dff054        ; dest mem d
  367.     Move.l    a0,$dff048        ; dest mem c
  368.     Move.l    a6,$dff050        ; source mem a
  369.     Move.w    #$ffff,$dff044    ; blit 1st word mask source a
  370.     move.w    #$ffff,$dff046    ; blit last word mask source a
  371.     move.w    d5,$dff040
  372.     move.w    #0,$dff064        ; source for a
  373.     move.w    #0,$dff042        ; blit cont reg 1
  374.     Move.w    #34,$dff066        ; modulo for d
  375.     Move.w    #34,$dff060        ; modulo for c
  376.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  377.  
  378.     and.w    #$f000,d5
  379.     or.w    #$0f9a,d5
  380.  
  381. .wait2    Btst    #14,$dff002
  382.     Bne    .wait2
  383.  
  384.     ; plane 2
  385.  
  386.     move.l    a6,$dff050        ; source mem a
  387.     move.l    a0,$dff04c        ; dest mem b
  388.     move.l    a1,$dff048        ; dest mem c
  389.     move.l    a1,$dff054        ; dest mem d
  390.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  391.     move.w    #$ffff,$dff046    ; blit last word mask source a
  392.     move.w    d5,$dff040        ; blit cont reg 0
  393.     move.w    #0,$dff042        ; blit cont reg 1
  394.     move.w    #00,$dff064        ; modulo for a
  395.     move.w    #34,$dff062        ; modulo for b
  396.     move.w    #34,$dff066        ; modulo for d
  397.     move.w    #34,$dff060        ; modulo for c
  398.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  399.  
  400.     and.w    #$f000,d5
  401.     or.w    #$0f10,d5
  402.  
  403. .wait3    Btst    #14,$dff002
  404.     Bne    .wait3
  405.     
  406.     ; temp smear 1
  407.     
  408.  
  409.     move.l    a6,$dff050        ; source mem a
  410.     move.l    a0,$dff04c        ; dest mem b
  411.     move.l    a1,$dff048        ; dest mem c
  412.     move.l    #tempsmear1,$dff054    ; dest mem d
  413.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  414.     move.w    #$ffff,$dff046    ; blit last word mask source a
  415.     move.w    d5,$dff040        ; blit cont reg 0
  416.     move.w    #0,$dff042        ; blit cont reg 1
  417.     move.w    #00,$dff064        ; modulo for a
  418.     move.w    #34,$dff062        ; modulo for b
  419.     move.w    #34,$dff060        ; modulo for c
  420.     move.w    #0,$dff066        ; modulo for d
  421.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  422.  
  423. .wait4    Btst    #14,$dff002
  424.     Bne    .wait4
  425.  
  426.     ; plane 3
  427.  
  428.     move.l    #tempsmear1,$dff050    ; source mem a
  429.     move.l    a2,$dff04c        ; dest mem b
  430.     move.l    a2,$dff054        ; dest mem d
  431.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  432.     move.w    #$ffff,$dff046    ; blit last word mask source a
  433.     move.w    #$d3c,$dff040    ; blit cont reg 0
  434.     move.w    #0,$dff042        ; blit cont reg 1
  435.     move.w    #00,$dff064        ; modulo for a
  436.     move.w    #34,$dff062        ; modulo for b
  437.     move.w    #34,$dff066        ; modulo for d
  438.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  439.  
  440. .wait5    Btst    #14,$dff002
  441.     Bne    .wait5
  442.  
  443.     ; plane 4
  444.  
  445.     move.l    #tempsmear1,$dff050    ; source mem a
  446.     move.l    a2,$dff04c        ; source mem b
  447.     move.l    a3,$dff048        ; source mem c
  448.     move.l    a3,$dff054        ; dest mem d
  449.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  450.     move.w    #$ffff,$dff046    ; blit last word mask source a
  451.     move.w    #$f9a,$dff040    ; blit cont reg 0
  452.     move.w    #0,$dff042        ; blit cont reg 1
  453.     move.w    #00,$dff064        ; modulo for a
  454.     move.w    #34,$dff062        ; modulo for b
  455.     move.w    #34,$dff060        ; modulo for c
  456.     move.w    #34,$dff066        ; modulo for d
  457.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  458.  
  459. .wait6    Btst    #14,$dff002
  460.     Bne    .wait6
  461.  
  462.     ; temp smear 2
  463.  
  464.     move.l    #tempsmear1,$dff050    ; source mem a
  465.     move.l    a2,$dff04c        ; source mem b
  466.     move.l    a3,$dff048        ; source mem c
  467.     move.l    #tempsmear2,$dff054    ; dest mem d
  468.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  469.     move.w    #$ffff,$dff046    ; blit last word mask source a
  470.     move.w    #$f10,$dff040    ; blit cont reg 0
  471.     move.w    #0,$dff042        ; blit cont reg 1
  472.     move.w    #0,$dff064        ; modulo for a
  473.     move.w    #34,$dff062        ; modulo for b
  474.     move.w    #34,$dff060        ; modulo for c
  475.     move.w    #0,$dff066        ; modulo for d
  476.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  477.  
  478. .wait7    Btst    #14,$dff002
  479.     Bne    .wait7
  480.  
  481.     ; plane 5
  482.  
  483.     move.l    #tempsmear2,$dff050    ; source mem a
  484.     move.l    a4,$dff04c        ; dest mem b
  485.     move.l    a4,$dff054        ; dest mem d
  486.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  487.     move.w    #$ffff,$dff046    ; blit last word mask source a
  488.     move.w    #$d3c,$dff040    ; blit cont reg 0
  489.     move.w    #0,$dff042        ; blit cont reg 1
  490.     move.w    #00,$dff064        ; modulo for a
  491.     move.w    #34,$dff062        ; modulo for b
  492.     move.w    #34,$dff066        ; modulo for d
  493.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  494.  
  495. .wait8    Btst    #14,$dff002
  496.     Bne    .wait8
  497.  
  498.     movem.l    (a7)+,d0-d7/a0-a6
  499.     rts
  500.  
  501.     *************************************************
  502.  
  503. sinepos:    dc.w    0
  504. cosinepos:    dc.w    0
  505. sinepos2:    dc.w    0
  506. cosinepos2:    dc.w    0
  507. sinepos3:    dc.w    0
  508. cosinepos3:    dc.w    0
  509.  
  510. x1step:    dc.w    10
  511. y1step:    dc.w    80
  512. x2step:    dc.w    10
  513. y2step:    dc.w    80
  514. x3step:    dc.w    10
  515. y3step:    dc.w    80
  516.  
  517. sinoffset:    dc.w    0
  518.  
  519.  
  520. lcount:    dc.w    0
  521.         incdir     src:shadebobs/
  522. sintable:        incbin    "sin.3fe"
  523.         incbin    "sin.3fe"
  524.         incbin    "sin.3fe"
  525.         incbin    "sin.3fe"
  526.  
  527.  
  528. shade_colours:    dc.w    $000,$00f,$11f,$22f,$33f,$44f,$55f,$66f,$77f,$88f,$99f,$aaf,$bbf,$ccf,$ddf,$eef,$fff,$fee,$fdd,$fcc,$fbb,$faa,$f99,$f88,$f77,$f66,$f55,$f44,$f33,$f22,$f11,$f00
  529.         dc.w    $000,$002,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220
  530.         dc.w    $000,$200,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202
  531.         dc.w    $000,$f00,$f11,$f22,$f33,$f44,$f55,$f66,$f77,$f88,$f99,$faa,$fbb,$fcc,$fdd,$fee,$fff,$eef,$ddf,$ccf,$bbf,$aaf,$99f,$88f,$77f,$66f,$55f,$44f,$33f,$22f,$11f,$00f
  532.         dc.w    $000,$00f,$11f,$22f,$33f,$44f,$55f,$66f,$77f,$88f,$99f,$aaf,$bbf,$ccf,$ddf,$eef,$fff,$fee,$fdd,$fcc,$fbb,$faa,$f99,$f88,$f77,$f66,$f55,$f44,$f33,$f22,$f11,$f00
  533.         dc.w    $000,$002,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220
  534.         dc.w    $000,$200,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202
  535.         dc.w    $000,$f00,$f11,$f22,$f33,$f44,$f55,$f66,$f77,$f88,$f99,$faa,$fbb,$fcc,$fdd,$fee,$fff,$eef,$ddf,$ccf,$bbf,$aaf,$99f,$88f,$77f,$66f,$55f,$44f,$33f,$22f,$11f,$00f
  536.         dc.w    $000,$00f,$11f,$12f,$22f,$23f,$33f,$43f,$44f,$45f,$55f,$65f,$66f,$76f,$77f,$78f,$88f,$98f,$99f,$9af,$aaf,$baf,$bbf,$bcf,$ccf,$dcf,$ddf,$def,$eef,$fef,$fff,$fff
  537.         
  538.     *************************************************
  539.     
  540. my_copper:        dc.w    $100,$5200    ; 4 bp - lo res
  541.         dc.w    $104,$a    ; bp control reg
  542.         dc.w    $108,0    ; bp modulo - odd
  543.         dc.w    $10a,0    ; bp modulo - even
  544.         dc.w    $180,0    ; colour 0 to black
  545.         dc.w    $102,0
  546.         
  547.         dc.w    $08e,$2c81    ; bp window start left
  548.         dc.w    $090,$2cc1    ; bp window bot right
  549.         dc.w    $094,$d0    ; bp stop horz
  550.         dc.w    $92,$38
  551.  
  552.         dc.w    $120,0,$122,0
  553.         dc.w    $124,0,$126,0
  554.         dc.w    $128,0,$12a,0
  555.         dc.w    $12c,0,$12e,0
  556.         dc.w    $130,0,$132,0
  557.         dc.w    $134,0,$136,0
  558.         dc.w    $138,0,$13a,0
  559.         dc.w    $13c,0,$13e,0
  560.         
  561.  
  562.         dc.w      $e0
  563. sb_plane0_hi:    dc.w    0,$e2
  564. sb_plane0_lo:    dc.w    0,$e4
  565. sb_plane1_hi:    dc.w    0,$e6
  566. sb_plane1_lo:    dc.w    0,$e8
  567. sb_plane2_hi:    dc.w    0,$ea
  568. sb_plane2_lo:    dc.w    0,$ec
  569. sb_plane3_hi:    dc.w    0,$ee
  570. sb_plane3_lo:    dc.w    0,$f0
  571. sb_plane4_hi:    dc.w    0,$f2
  572. sb_plane4_lo:    dc.w    0
  573.  
  574.         
  575.         dc.w    $180,$000
  576. shade_map:        dc.w    $182,$11f
  577.         dc.w    $184,$22f
  578.         dc.w    $186,$33f
  579.         dc.w    $188,$44f
  580.         dc.w    $18a,$55f
  581.         dc.w    $18c,$66f
  582.         dc.w    $18e,$77f
  583.         dc.w    $190,$88f
  584.         dc.w    $192,$99f
  585.         dc.w    $194,$aaf
  586.         dc.w    $196,$bbf
  587.         dc.w    $198,$ccf
  588.         dc.w    $19a,$ddf
  589.         dc.w    $19c,$eef
  590.         dc.w    $19e,$fff
  591.         dc.w    $1a0,$fee
  592.         dc.w    $1a2,$fdd
  593.         dc.w    $1a4,$fcc
  594.         dc.w    $1a6,$fbb
  595.         dc.w    $1a8,$faa
  596.         dc.w    $1aa,$f99
  597.         dc.w    $1ac,$f88
  598.         dc.w    $1ae,$f77
  599.         dc.w    $1b0,$f66
  600.         dc.w    $1b2,$f55
  601.         dc.w    $1b4,$f44
  602.         dc.w    $1b6,$f33
  603.         dc.w    $1b8,$f22
  604.         dc.w    $1ba,$f11
  605.         dc.w    $1bc,$f00
  606.         dc.w    $1be,$f00
  607.         
  608.         dc.w    $ffe1,$fffe    ; end of ntsc screen
  609.         dc.w    $9c,$8010    ; irq set bits - restart copper
  610.         dc.w    $3001,$ff00    ; end of pal screen
  611.         dc.w    $ffff,$fffe    ; end of copper list
  612.  
  613. tempsmear1:        ds.l    384
  614. tempsmear2:        ds.l    384
  615.  
  616. oldint:        dc.l    0
  617. olddma:        dc.l    0
  618. oldv3:        dc.l    0
  619. gfxlib:        dc.b    "graphics.library",0
  620.         even
  621.  
  622. brushlist:        dc.l    brush1
  623.         dc.l    brush2
  624.         dc.l    brush3
  625.         dc.l    brush4
  626.         dc.l    brush3
  627.         dc.l    brush4
  628.         dc.l    -1
  629.  
  630. brush_ptr:        dc.l    brushlist
  631.  
  632. brush1:        incbin    "shadeb1.bin"
  633. brush2:        incbin    "shadeb2.bin"
  634. brush3:        incbin    "shadeb3.bin"
  635. brush4:        incbin    "shadeb6.bin"
  636.  
  637.  
  638. screena:        ds.l    10*256
  639. screenb:        ds.l    10*256
  640. screenc:        ds.l    10*256
  641. screend:        ds.l    10*256
  642. screene:        ds.l    10*256
  643.  
  644.  
  645.